home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / FileTransfers.p < prev    next >
Text File  |  1995-09-14  |  11KB  |  311 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 6:09:33 PM }
  2. {}
  3. {     File:        FileTransfers.p}
  4. { }
  5. {     Contains:    CommToolbox File Transfer Manager Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit FileTransfers;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __FILETRANSFERS__}
  26. {$SETC __FILETRANSFERS__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Quickdraw, Controls, Windows, Dialogs, AppleTalk, CTBUtilities, Connections, Files, Terminals;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35.     const
  36. { current file transfer manager version    }
  37.         curFTVersion = 2;
  38. { FTErr    }
  39.         ftGenericError = -1;
  40.         ftNoErr = 0;
  41.         ftRejected = 1;
  42.         ftFailed = 2;
  43.         ftTimeOut = 3;
  44.         ftTooManyRetry = 4;
  45.         ftNotEnoughDSpace = 5;
  46.         ftRemoteCancel = 6;
  47.         ftWrongFormat = 7;
  48.         ftNoTools = 8;
  49.         ftUserCancel = 9;
  50.         ftNotSupported = 10;
  51.  
  52.  
  53.     type
  54.         FTErr = OSErr;
  55.  
  56.  
  57.     const
  58.         ftIsFTMode = $1;
  59.         ftNoMenus = $2;
  60.         ftQuiet = $4;
  61.         ftConfigChanged = $10;
  62.         ftSucc = $80;
  63.  
  64.  
  65.     type
  66.         FTFlags = LONGINT;
  67.  
  68.  
  69.     const
  70.         ftSameCircuit = $1;
  71.         ftSendDisable = $2;
  72.         ftReceiveDisable = $4;
  73.         ftTextOnly = $8;
  74.         ftNoStdFile = $10;
  75.         ftMultipleFileSend = $20;
  76.  
  77.  
  78.     type
  79.         FTAttributes = INTEGER;
  80.  
  81.  
  82.     const
  83.         ftReceiving = 0;
  84.         ftTransmitting = 1;
  85.  
  86.  
  87.     type
  88.         FTDirection = INTEGER;
  89.  
  90. {    application routines type definitions }
  91.         FTPtr = ^FTRecord;
  92.         FTHandle = ^FTPtr;
  93.  
  94.         FileTransferDefProcPtr = ProcPtr;  { FUNCTION FileTransferDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  95.         FileTransferReadProcPtr = ProcPtr;  { FUNCTION FileTransferRead(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  96.         FileTransferWriteProcPtr = ProcPtr;  { FUNCTION FileTransferWrite(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  97.         FileTransferSendProcPtr = ProcPtr;  { FUNCTION FileTransferSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags): Size; }
  98.         FileTransferReceiveProcPtr = ProcPtr;  { FUNCTION FileTransferReceive(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags): Size; }
  99.         FileTransferEnvironsProcPtr = ProcPtr;  { FUNCTION FileTransferEnvirons(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): OSErr; }
  100.         FileTransferNotificationProcPtr = ProcPtr;  { PROCEDURE FileTransferNotification(hFT: FTHandle; pFSSpec: FSSpecPtr); }
  101.         FileTransferChooseIdleProcPtr = ProcPtr;  { PROCEDURE FileTransferChooseIdle; }
  102.         FileTransferDefUPP = UniversalProcPtr;
  103.         FileTransferReadUPP = UniversalProcPtr;
  104.         FileTransferWriteUPP = UniversalProcPtr;
  105.         FileTransferSendUPP = UniversalProcPtr;
  106.         FileTransferReceiveUPP = UniversalProcPtr;
  107.         FileTransferEnvironsUPP = UniversalProcPtr;
  108.         FileTransferNotificationUPP = UniversalProcPtr;
  109.         FileTransferChooseIdleUPP = UniversalProcPtr;
  110.  
  111.         FTRecord = packed record
  112.                 procID: INTEGER;
  113.                 flags: FTFlags;
  114.                 errCode: FTErr;
  115.                 refCon: LONGINT;
  116.                 userData: LONGINT;
  117.                 defProc: FileTransferDefUPP;
  118.                 config: Ptr;
  119.                 oldConfig: Ptr;
  120.                 environsProc: FileTransferEnvironsUPP;
  121.                 reserved1: LONGINT;
  122.                 reserved2: LONGINT;
  123.                 ftPrivate: Ptr;
  124.                 sendProc: FileTransferSendUPP;
  125.                 recvProc: FileTransferReceiveUPP;
  126.                 writeProc: FileTransferWriteUPP;
  127.                 readProc: FileTransferReadUPP;
  128.                 owner: WindowPtr;
  129.                 direction: FTDirection;
  130.                 theReply: SFReply;
  131.                 writePtr: LONGINT;
  132.                 readPtr: LONGINT;
  133.                 theBuf: ^CHAR;
  134.                 bufSize: LONGINT;
  135.                 autoRec: Str255;
  136.                 attributes: FTAttributes;
  137.             end;
  138.  
  139.  
  140.     const
  141. { FTReadProc messages }
  142.         ftReadOpenFile = 0;                            { count = forkFlags, buffer = pblock from PBGetFInfo }
  143.         ftReadDataFork = 1;
  144.         ftReadRsrcFork = 2;
  145.         ftReadAbort = 3;
  146.         ftReadComplete = 4;
  147.         ftReadSetFPos = 6;                            { count = forkFlags, buffer = pBlock same as PBSetFPos }
  148.         ftReadGetFPos = 7;                            { count = forkFlags, buffer = pBlock same as PBGetFPos }
  149. { FTWriteProc messages }
  150.         ftWriteOpenFile = 0;                            { count = forkFlags, buffer = pblock from PBGetFInfo }
  151.         ftWriteDataFork = 1;
  152.         ftWriteRsrcFork = 2;
  153.         ftWriteAbort = 3;
  154.         ftWriteComplete = 4;
  155.         ftWriteFileInfo = 5;
  156.         ftWriteSetFPos = 6;                            { count = forkFlags, buffer = pBlock same as PBSetFPos }
  157.         ftWriteGetFPos = 7;                            { count = forkFlags, buffer = pBlock same as PBGetFPos }
  158. {    fork flags }
  159.         ftOpenDataFork = 1;
  160.         ftOpenRsrcFork = 2;
  161.  
  162.         uppFileTransferDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  163.         uppFileTransferReadProcInfo = $00002FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; }
  164.         uppFileTransferWriteProcInfo = $00002FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; }
  165.         uppFileTransferSendProcInfo = $0000AFF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param): 4 byte result; }
  166.         uppFileTransferReceiveProcInfo = $0000EFF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param): 4 byte result; }
  167.         uppFileTransferEnvironsProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  168.         uppFileTransferNotificationProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  169.         uppFileTransferChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  170.  
  171.     function NewFileTransferDefProc (userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  172.     {$IFC NOT GENERATINGCFM }
  173.     inline
  174.         $2E9F;
  175.     {$ENDC}
  176.  
  177.     function NewFileTransferReadProc (userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  178.     {$IFC NOT GENERATINGCFM }
  179.     inline
  180.         $2E9F;
  181.     {$ENDC}
  182.  
  183.     function NewFileTransferWriteProc (userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  184.     {$IFC NOT GENERATINGCFM }
  185.     inline
  186.         $2E9F;
  187.     {$ENDC}
  188.  
  189.     function NewFileTransferSendProc (userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  190.     {$IFC NOT GENERATINGCFM }
  191.     inline
  192.         $2E9F;
  193.     {$ENDC}
  194.  
  195.     function NewFileTransferReceiveProc (userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  196.     {$IFC NOT GENERATINGCFM }
  197.     inline
  198.         $2E9F;
  199.     {$ENDC}
  200.  
  201.     function NewFileTransferEnvironsProc (userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  202.     {$IFC NOT GENERATINGCFM }
  203.     inline
  204.         $2E9F;
  205.     {$ENDC}
  206.  
  207.     function NewFileTransferNotificationProc (userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  208.     {$IFC NOT GENERATINGCFM }
  209.     inline
  210.         $2E9F;
  211.     {$ENDC}
  212.  
  213.     function NewFileTransferChooseIdleProc (userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  214.     {$IFC NOT GENERATINGCFM }
  215.     inline
  216.         $2E9F;
  217.     {$ENDC}
  218.  
  219.     function CallFileTransferDefProc (hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  220.     {$IFC NOT GENERATINGCFM}
  221.     inline
  222.         $205F, $4E90;
  223.     {$ENDC}
  224.  
  225.     function CallFileTransferReadProc (var count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): OSErr;
  226.     {$IFC NOT GENERATINGCFM}
  227.     inline
  228.         $205F, $4E90;
  229.     {$ENDC}
  230.  
  231.     function CallFileTransferWriteProc (var count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): OSErr;
  232.     {$IFC NOT GENERATINGCFM}
  233.     inline
  234.         $205F, $4E90;
  235.     {$ENDC}
  236.  
  237.     function CallFileTransferSendProc (thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags; userRoutine: FileTransferSendUPP): Size;
  238.     {$IFC NOT GENERATINGCFM}
  239.     inline
  240.         $205F, $4E90;
  241.     {$ENDC}
  242.  
  243.     function CallFileTransferReceiveProc (thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; var flag: CMFlags; userRoutine: FileTransferReceiveUPP): Size;
  244.     {$IFC NOT GENERATINGCFM}
  245.     inline
  246.         $205F, $4E90;
  247.     {$ENDC}
  248.  
  249.     function CallFileTransferEnvironsProc (refCon: LONGINT; var theEnvirons: ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): OSErr;
  250.     {$IFC NOT GENERATINGCFM}
  251.     inline
  252.         $205F, $4E90;
  253.     {$ENDC}
  254.  
  255.     procedure CallFileTransferNotificationProc (hFT: FTHandle; pFSSpec: FSSpecPtr; userRoutine: FileTransferNotificationUPP);
  256.     {$IFC NOT GENERATINGCFM}
  257.     inline
  258.         $205F, $4E90;
  259.     {$ENDC}
  260.  
  261.     procedure CallFileTransferChooseIdleProc (userRoutine: FileTransferChooseIdleUPP);
  262.     {$IFC NOT GENERATINGCFM}
  263.     inline
  264.         $205F, $4E90;
  265.     {$ENDC}
  266.  
  267.     function InitFT: FTErr;
  268.     function FTGetVersion (hFT: FTHandle): Handle;
  269.     function FTGetFTVersion: INTEGER;
  270.     function FTNew (procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  271.     procedure FTDispose (hFT: FTHandle);
  272.     function FTStart (hFT: FTHandle; direction: FTDirection; {CONST}
  273.                                     var fileInfo: SFReply): FTErr;
  274.     function FTAbort (hFT: FTHandle): FTErr;
  275.     function FTSend (hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  276.     function FTReceive (hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  277.     procedure FTExec (hFT: FTHandle);
  278.     procedure FTActivate (hFT: FTHandle; activate: BOOLEAN);
  279.     procedure FTResume (hFT: FTHandle; resume: BOOLEAN);
  280.     function FTMenu (hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  281.     function FTChoose (var hFT: FTHandle; where: Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  282.     procedure FTEvent (hFT: FTHandle; {CONST}
  283.                                     var theEvent: EventRecord);
  284.     function FTValidate (hFT: FTHandle): BOOLEAN;
  285.     procedure FTDefault (var theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  286.     function FTSetupPreflight (procID: INTEGER; var magicCookie: LONGINT): Handle;
  287.     procedure FTSetupSetup (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var magicCookie: LONGINT);
  288.     function FTSetupFilter (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var theEvent: EventRecord; var theItem: INTEGER; var magicCookie: LONGINT): BOOLEAN;
  289.     procedure FTSetupItem (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var theItem: INTEGER; var magicCookie: LONGINT);
  290.     procedure FTSetupXCleanup (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; var magicCookie: LONGINT);
  291.     procedure FTSetupPostflight (procID: INTEGER);
  292.     function FTGetConfig (hFT: FTHandle): Ptr;
  293.     function FTSetConfig (hFT: FTHandle; thePtr: univ Ptr): INTEGER;
  294.     function FTIntlToEnglish (hFT: FTHandle; inputPtr: univ Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  295.     function FTEnglishToIntl (hFT: FTHandle; inputPtr: univ Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  296.     procedure FTGetToolName (procID: INTEGER; var name: Str255);
  297.     function FTGetProcID (name: ConstStr255Param): INTEGER;
  298.     procedure FTSetRefCon (hFT: FTHandle; refCon: LONGINT);
  299.     function FTGetRefCon (hFT: FTHandle): LONGINT;
  300.     procedure FTSetUserData (hFT: FTHandle; userData: LONGINT);
  301.     function FTGetUserData (hFT: FTHandle): LONGINT;
  302.     procedure FTGetErrorString (hFT: FTHandle; id: INTEGER; var errMsg: Str255);
  303.  
  304. { $ALIGN RESET}
  305. { $POP}
  306.  
  307. {$ENDC}
  308.  {__FILETRANSFERS__}
  309.  
  310. implementation
  311. end.